package com.erp.erp_dao.Purchase;

import com.erp.erp_entitys.Purchase.ExportVo;
import com.erp.erp_entitys.Purchase.PurchaseProduct;
import com.erp.erp_entitys.Purchase.TaskVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface IPurchaseProductDAO {
    int deleteByPrimaryKey(Integer id);

    int insert(PurchaseProduct record);

    int insertSelective(PurchaseProduct record);

    PurchaseProduct selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(PurchaseProduct record);

    int updateByPrimaryKey(PurchaseProduct record);

    int updateProValidByProList(@Param("proList") List<PurchaseProduct> proList);

    int updateProValidByKey(PurchaseProduct product);

    List<PurchaseProduct> selectProductByPuId(Integer puId);

    int deleteByIdList(@Param("idList") List<Integer> idList);

    List<PurchaseProduct> selectPurchaseProductByCode(@Param("productNo") String productNo, @Param("specNo") String specNo);

    List<ExportVo> selectExportByList(ExportVo vo);

    List<PurchaseProduct> selectExportProductByExIds(@Param("idList") List<Integer> idList);

    int upExportProductNum(Map<String, Object> map);

    int backExportProductNum(Map<String, Object> map);

    List<PurchaseProduct> selectExportProductPartByCode(@Param("productCode") String productCode, @Param("productGgCode") String productGgCode);

    List<TaskVo> selectTaskByList(TaskVo vo);

    List<PurchaseProduct> selectTaskProductByTaskIds(@Param("idList") List<Integer> idList);

    List<PurchaseProduct> selectExportPartByExportIds(@Param("idList") List<Integer> idList);

    List<PurchaseProduct> selectTaskPartByTaskIds(@Param("idList") List<Integer> idList);

}